package nl.rainbowsheep.reisorg.rest.service.model;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.validation.constraints.NotNull;

@Entity
@Table(name = "housing_bookings")
public class AccommodationHousingBooking implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "housing_booking_id")
    private long id;

    @Column(name = "trip_booking_fk")
    private long tripBookingId;

    @Column(name = "accommodation_housing_fk")
    private long housingId;

    @Column(name = "traveldocument_type_fk")
    private long travelDocumentTypeId;

    @Column(name = "price")
    @NotNull
    private Double price;

    @Column(name = "amount_persons")
    @NotNull
    private int totalPersons;

    @Column(name = "start_date")
    @NotNull
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date startDate;

    @Column(name = "end_date")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date endDate;

    @Column(name = "status")
    @NotNull
    private int status;

    @Column(name = "has_traveldocument")
    @NotNull
    private boolean hasTravelDocument;

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getTripBookingId() {
        return tripBookingId;
    }

    public void setTripBookingId(long tripBookingId) {
        this.tripBookingId = tripBookingId;
    }

    public long getHousingId() {
        return housingId;
    }

    public void setHousingId(long housingId) {
        this.housingId = housingId;
    }

    public long getTravelDocumentTypeId() {
        return travelDocumentTypeId;
    }

    public void setTravelDocumentTypeId(long travelDocumentTypeId) {
        this.travelDocumentTypeId = travelDocumentTypeId;
    }

    public Double getPrice() {
        return price;
    }

    public void setPrice(Double price) {
        this.price = price;
    }

    public int getTotalPersons() {
        return totalPersons;
    }

    public void setTotalPersons(int totalPersons) {
        this.totalPersons = totalPersons;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public boolean isHasTravelDocument() {
        return hasTravelDocument;
    }

    public void setHasTravelDocument(boolean hasTravelDocument) {
        this.hasTravelDocument = hasTravelDocument;
    }
}
